
c	Created: Saturday, August 17, 1991 at 10:25 AM
c	 QuickTimeComponents.f
c	 FORTRAN Interface to the Macintosh Libraries

c	 Copyright Apple Computer, Inc. 1991
c	 All rights reserved
	
	
	
	
	
!!IFC NOT UsingIncludes
!!I ZeroInc.f
!!ENDC
	
!!IFC NOT GotComponents
!!I Components.f
!!ENDC
!!IFC NOT GotImageCompression
!!I ImageCompression.f
!!ENDC
!!IFC NOT GotMovies
!!I Movies.f
!!ENDC
!!IFC NOT GotQuickDraw
!!I QuickDraw.f
!!ENDC
!!IFC NOT GotVideo
!!I Video.f
!!ENDC

!!IFC NOT GOTQUICKTIMECOMPONENTS
!!SETC GOTQUICKTIMECOMPONENTS = true
	!****
	
	! Clock Component
	
	!****
	Character*4 clockComponentType 
	Parameter (clockComponentType = 'clok')
	Character*4 systemTickClock 
	Parameter (systemTickClock = 'tick'			! subtype: 60ths since boot )
	Character*4 systemMicrosecondClock 
	Parameter (systemMicrosecondClock = 'micr'	! subtype: 1000000ths since boot )
	
	Integer*2 kClockRateIsLinear 
	Parameter (kClockRateIsLinear = 1)
	Integer*2 kClockImplementsCallBacks 
	Parameter (kClockImplementsCallBacks = 2)
	
	Integer*2 kClockGetClockTimeSelect 
	Parameter (kClockGetClockTimeSelect = 1)
	Integer*2 kClockSetClockTimeSelect 
	Parameter (kClockSetClockTimeSelect = 2)
	Integer*2 kClockNewCallBackSelect 
	Parameter (kClockNewCallBackSelect = 3)
	Integer*2 kClockDisposeCallBackSelect 
	Parameter (kClockDisposeCallBackSelect = 4)
	Integer*2 kClockCallMeWhenSelect 
	Parameter (kClockCallMeWhenSelect = 5)
	Integer*2 kClockCancelCallBackSelect 
	Parameter (kClockCancelCallBackSelect = 6)
	Integer*2 kClockRateChangedSelect 
	Parameter (kClockRateChangedSelect = 7)
	Integer*2 kClockTimeChangedSelect 
	Parameter (kClockTimeChangedSelect = 8)
	Integer*2 kClockSetTimeBaseSelect 
	Parameter (kClockSetTimeBaseSelect = 9)
	
	
	! Video Digitizer Component
	
	
	 !Standard type for video digitizers 
	Character*4 videoDigitizerComponentType 
	Parameter (videoDigitizerComponentType = 'vdig')
	Integer*2 vdigInterfaceRev 
	Parameter (vdigInterfaceRev = 2)
	
	! Input Format Standards 
	Integer*2 ntscIn 
	Parameter (ntscIn = 0)				! ntsc input format 
	Integer*2 palIn 
	Parameter (palIn = 1)				! pal input format 
	Integer*2 secamIn 
	Parameter (secamIn = 2)				! secam input format 
	
	
	! Input Formats 
	Integer*2 compositeIn 
	Parameter (compositeIn = 0)	! input is composite format 
	Integer*2 sVideoIn
	Parameter (sVideoIn = 1)					! input is sVideo format 
	Integer*2 rgbComponentIn 
	Parameter (rgbComponentIn = 2)				! input is rgb component format 
	
	
	! Video Digitizer PlayThru States 
	Integer*2 vdPlayThruOff 
	Parameter (vdPlayThruOff = 0)
	Integer*2 vdPlayThruOn 
	Parameter (vdPlayThruOn = 1)
	
	
	! Input Color Space Modes 
	Integer*2 vdDigitizerBW 
	Parameter (vdDigitizerBW = 0)					! black and white 
	Integer*2 vdDigitizerRGB 
	Parameter (vdDigitizerRGB = 1)					! rgb color 
	
	
	! Phase Lock Loop Modes 
	Integer*2 vdBroadcastMode 
	Parameter (vdBroadcastMode = 0)				! Broadcast / Laser Disk video mode 
	Integer*2 vdVTRMode 
	Parameter (vdVTRMode = 1)						! VCR / Magnetic media mode 
	
	
	! Field Select Options 
	Integer*2 vdUseAnyField 
	Parameter (vdUseAnyField = 0)
	Integer*2 vdUseOddField 
	Parameter (vdUseOddField = 1)
	Integer*2 vdUseEvenField 
	Parameter (vdUseEvenField = 2)
	
	! vdig types 
	Integer*2 vdTypeBasic 
	Parameter (vdTypeBasic = 0)					! basic, no clipping 
	Integer*2 vdTypeAlpha 
	Parameter (vdTypeAlpha = 1)					! supports clipping with alpha channel 
	Integer*2 vdTypeMask 
	Parameter (vdTypeMask = 2)						! supports clipping with mask plane 
	Integer*2 vdTypeKey 
	Parameter (vdTypeKey = 3)						! supports clipping with key color(s) 
	
	
	! Digitizer Error Codes 
	Integer*2 digiUnimpErr 
	Parameter (digiUnimpErr = -2201)				! feature unimplemented 
	Integer*2 qtParamErr 
	Parameter (qtParamErr = -2202)					! bad input parameter ( out of range, etc ) 
	Integer*2 matrixErr 
	Parameter (matrixErr = -2203)					! bad matrix, digitizer did nothing 
	Integer*2 notExactMatrix 
	Parameter (notExactMatrix = -2204)				! warning of bad matrix, digitizer did its best 
	Integer*2 noMoreKeyColors 
	Parameter (noMoreKeyColors = -2205)			! all key indexes in use 
	Integer*2 notExactSize 
	Parameter (notExactSize = -2206)				! CanÕt do exact size requested 
	Integer*2 badDepth 
	Parameter (badDepth = -2207)					! CanÕt digitize into this depth 
	Integer*2 noDMA 
	Parameter (noDMA = -2208)						! CanÕt do DMA digitizing ( i.e. can't go to requested dest 
	Integer*2 badCallOrder 
	Parameter (badCallOrder = -2209)				! Usually due to a status call being called prior to being setup first 
	
	! Digitizer Input Capability/Current Flags 
	Integer*4 digiInDoesNTSC 
	Parameter (digiInDoesNTSC = $1)				! digitizer supports NTSC input format 
	Integer*4 digiInDoesPAL 
	Parameter (digiInDoesPAL = $2)					! digitizer supports PAL input format 
	Integer*4 digiInDoesSECAM 
	Parameter (digiInDoesSECAM = $4)				! digitizer supports SECAM input format 
	Integer*4 digiInDoesGenLock 
	Parameter (digiInDoesGenLock = $80)			! digitizer does genlock 
	
	Integer*4 digiInDoesComposite 
	Parameter (digiInDoesComposite = $100)			! digitizer supports composite input type 
	Integer*4 digiInDoesSVideo 
	Parameter (digiInDoesSVideo = $200)			! digitizer supports S-Video input type 
	Integer*4 digiInDoesComponent 
	Parameter (digiInDoesComponent = $400)			! digitizer supports component (rgb) input type 
	Integer*4 digiInVTR_Broadcast 
	Parameter (digiInVTR_Broadcast = $800)			! digitizer can differentiate between the two 
	
	Integer*4 digiInDoesColor 
	Parameter (digiInDoesColor = $1000)			! digitizer supports color 
	Integer*4 digiInDoesBW 
	Parameter (digiInDoesBW = $2000)				! digitizer supports black & white 
	
	
	! Digitizer Input Current Flags (these are valid only during active operating conditions) 
	Integer*4 digiInSignalLock 
	Parameter (digiInSignalLock = $80000000)		! digitizer detects input signal is locked - this bit = horiz lock || vertical lock 
	
	
	! Digitizer Output Capability/Current Flags 
	Integer*4 digiOutDoes1 
	Parameter (digiOutDoes1 = $1)					! digitizer supports 1 bit pixels 
	Integer*4 digiOutDoes2 
	Parameter (digiOutDoes2 = $2)					! digitizer supports 2 bit pixels 
	Integer*4 digiOutDoes4 
	Parameter (digiOutDoes4 = $4)					! digitizer supports 4 bit pixels 
	Integer*4 digiOutDoes8 
	Parameter (digiOutDoes8 = $8)					! digitizer supports 8 bit pixels 
	Integer*4 digiOutDoes16 
	Parameter (digiOutDoes16 = $10)				! digitizer supports 16 bit pixels 
	Integer*4 digiOutDoes32 
	Parameter (digiOutDoes32 = $20)				! digitizer supports 32 bit pixels 
	Integer*4 digiOutDoesDither 
	Parameter (digiOutDoesDither = $40)			! digitizer dithers in indexed modes 
	Integer*4 digiOutDoesStretch 
	Parameter (digiOutDoesStretch = $80)			! digitizer can arbitrarily stretch 
	Integer*4 digiOutDoesShrink 
	Parameter (digiOutDoesShrink = $100)			! digitizer can arbitrarily shrink 
	Integer*4 digiOutDoesMask 
	Parameter (digiOutDoesMask = $200)				! digitizer can mask to clipping regions 
	
	Integer*4 digiOutDoesDouble 
	Parameter (digiOutDoesDouble = $800)			! digitizer can stretch to exactly double size 
	Integer*4 digiOutDoesQuad 
	Parameter (digiOutDoesQuad = $1000)			! digitizer can stretch exactly quadruple size 
	Integer*4 digiOutDoesQuarter 
	Parameter (digiOutDoesQuarter = $2000)			! digitizer can shrink to exactly quarter size 
	Integer*4 digiOutDoesSixteenth 
	Parameter (digiOutDoesSixteenth = $4000)		! digitizer can shrink to exactly sixteenth size 
	
	Integer*4 digiOutDoesRotate 
	Parameter (digiOutDoesRotate = $8000)			! digitizer supports rotate transformations 
	Integer*4 digiOutDoesHorizFlip 
	Parameter (digiOutDoesHorizFlip = $10000)		! digitizer supports horizontal flips Sx < 0 
	Integer*4 digiOutDoesVertFlip 
	Parameter (digiOutDoesVertFlip = $20000)		! digitizer supports vertical flips Sy < 0 
	Integer*4 digiOutDoesSkew 
	Parameter (digiOutDoesSkew = $40000)			! digitizer supports skew (shear, twist) 
	Integer*4 digiOutDoesBlend 
	Parameter (digiOutDoesBlend = $80000)
	Integer*4 digiOutDoesWarp 
	Parameter (digiOutDoesWarp = $100000)
	
	Integer*4 digiOutDoesHW_DMA 
	Parameter (digiOutDoesHW_DMA = $200000)		! digitizer not constrained to local device 
	Integer*4 digiOutDoesHWPlayThru 
	Parameter (digiOutDoesHWPlayThru = $400000)	! digitizer doesn't need time to play thru 
	Integer*4 digiOutDoesILUT 
	Parameter (digiOutDoesILUT = $800000)			! digitizer does inverse LUT for index modes 
	Integer*4 digiOutDoesKeyColor 
	Parameter (digiOutDoesKeyColor = $1000000)		! digitizer does key color functions too 
	Integer*4 digiOutDoesAsyncGrabs 
	Parameter (digiOutDoesAsyncGrabs = $2000000)	! digitizer supports async grabs 
	
c	VideoDigitizerComponent = ComponentInstance
c	VideoDigitizerError = ComponentResult
c	VdigIntProc = ComponentResult		
	
	! Types 
	Structure /DigitizerInfo /
	 Integer*2 vdigType 
	 Integer*4 inputCapabilityFlags 
	 Integer*4 outputCapabilityFlags 
	 Integer*4 inputCurrentFlags 
	 Integer*4 outputCurrentFlags 
	 Integer*2 slot 						! temporary for connection purposes 
	 Record /GDHandle/ gdh 						! temporary for digitizers that have preferred screen 
	 Record /GDHandle/ maskgdh 					! temporary for digitizers that have mask planes 
	 Integer*2 minDestHeight 			! Smallest resizable height 
	 Integer*2 minDestWidth 				! Smallest resizable width 
	 Integer*2 maxDestHeight 			! Largest resizable height 
	 Integer*2 maxDestWidth 				! Largest resizable height 
	 Integer*2 blendLevels 				! Number of blend levels supported (2 If (1 bit mask) 
	 Integer*4 Private 					! reserved 
	End Structure
	
	Structure /VdigType /
	 Integer*4 digType 
	 Integer*4 Private 
	End Structure
	
	Structure /VdigTypeList /
	 Integer*2 count 
	 Record /VdigType/ list(0:0)
	End Structure
	Structure /VdigTypeListPtr /
		Pointer /VdigTypeList/ P
	End Structure
	Structure /VdigTypeListHandle /
		Pointer /VdigTypeListPtr/ H
	End Structure

	Structure /VdigBufferRec /
		Record /PixMapHandle/ dest 
		Record /Point/ location 
		Integer*4 reserved 
	End Structure
	
	Structure /VdigBufferRecList /
		Integer*2 count 
		Record /MatrixRecordPtr/ matrix  
		Record /RgnHandle/ mask 
		Record /VdigBufferRec/	list(0:0)
		END
	Structure /VdigBufferRecListPtr /
		Pointer /VdigBufferRecList/ P
	End Structure
	Structure /VdigBufferRecListHandle /
		Pointer /VdigBufferRecListPtr/ H
	End Structure

	! Video Digitizer Interface 
	Integer*2 kSelectVDGetMaxSrcRect 
	Parameter (kSelectVDGetMaxSrcRect = 1)
	Integer*2 kSelectVDGetActiveSrcRect 
	Parameter (kSelectVDGetActiveSrcRect = 2)
	Integer*2 kSelectVDSetDigitizerRect 
	Parameter (kSelectVDSetDigitizerRect = 3)
	Integer*2 kSelectVDGetDigitizerRect 
	Parameter (kSelectVDGetDigitizerRect = 4)
	Integer*2 kSelectVDGetVBlankRect 
	Parameter (kSelectVDGetVBlankRect = 5)
	Integer*2 kSelectVDGetMaskPixMap 
	Parameter (kSelectVDGetMaskPixMap = 6)
	Integer*2 kSelectVDGetPlayThruDestination 
	Parameter (kSelectVDGetPlayThruDestination = 8)
	Integer*2 kSelectVDUseThisCLUT 
	Parameter (kSelectVDUseThisCLUT = 9)
	Integer*2 kSelectVDSetInputGammaValue 
	Parameter (kSelectVDSetInputGammaValue = 10)
	Integer*2 kSelectVDGetInputGammaValue 
	Parameter (kSelectVDGetInputGammaValue = 11)
	Integer*2 kSelectVDSetBrightness 
	Parameter (kSelectVDSetBrightness = 12)
	Integer*2 kSelectVDGetBrightness 
	Parameter (kSelectVDGetBrightness = 13)
	Integer*2 kSelectVDSetContrast 
	Parameter (kSelectVDSetContrast = 14)
	Integer*2 kSelectVDSetHue 
	Parameter (kSelectVDSetHue = 15)
	Integer*2 kSelectVDSetSharpness 
	Parameter (kSelectVDSetSharpness = 16)
	Integer*2 kSelectVDSetSaturation 
	Parameter (kSelectVDSetSaturation = 17)
	Integer*2 kSelectVDGetContrast 
	Parameter (kSelectVDGetContrast = 18)
	Integer*2 kSelectVDGetHue 
	Parameter (kSelectVDGetHue = 19)
	Integer*2 kSelectVDGetSharpness 
	Parameter (kSelectVDGetSharpness = 20)
	Integer*2 kSelectVDGetSaturation 
	Parameter (kSelectVDGetSaturation = 21)
	Integer*2 kSelectVDGrabOneFrame 
	Parameter (kSelectVDGrabOneFrame = 22)
	Integer*2 kSelectVDGetMaxAuxBuffer 
	Parameter (kSelectVDGetMaxAuxBuffer = 23)
	Integer*2 kSelectVDGetDigitizerInfo 
	Parameter (kSelectVDGetDigitizerInfo = 25)
	Integer*2 kSelectVDGetCurrentFlags 
	Parameter (kSelectVDGetCurrentFlags = 26)
	Integer*2 kSelectVDSetKeyColor 
	Parameter (kSelectVDSetKeyColor = 27)
	Integer*2 kSelectVDGetKeyColor 
	Parameter (kSelectVDGetKeyColor = 28)
	Integer*2 kSelectVDAddKeyColor 
	Parameter (kSelectVDAddKeyColor = 29)
	Integer*2 kSelectVDGetNextKeyColor 
	Parameter (kSelectVDGetNextKeyColor = 30)
	Integer*2 kSelectVDSetKeyColorRange 
	Parameter (kSelectVDSetKeyColorRange = 31)
	Integer*2 kSelectVDGetKeyColorRange 
	Parameter (kSelectVDGetKeyColorRange = 32)
	Integer*2 kSelectVDSetDigitizerUserInterrupt 
	Parameter (kSelectVDSetDigitizerUserInterrupt = 33)
	Integer*2 kSelectVDSetInputColorSpaceMode 
	Parameter (kSelectVDSetInputColorSpaceMode = 34)
	Integer*2 kSelectVDGetInputColorSpaceMode 
	Parameter (kSelectVDGetInputColorSpaceMode = 35)
	Integer*2 kSelectVDSetClipState 
	Parameter (kSelectVDSetClipState = 36)
	Integer*2 kSelectVDGetClipState 
	Parameter (kSelectVDGetClipState = 37)
	Integer*2 kSelectVDSetClipRgn 
	Parameter (kSelectVDSetClipRgn = 38)
	Integer*2 kSelectVDClearClipRgn 
	Parameter (kSelectVDClearClipRgn = 39)
	Integer*2 kSelectVDGetCLUTInUse 
	Parameter (kSelectVDGetCLUTInUse = 40)
	Integer*2 kSelectVDSetPLLFilterType 
	Parameter (kSelectVDSetPLLFilterType = 41)
	Integer*2 kSelectVDGetPLLFilterType 
	Parameter (kSelectVDGetPLLFilterType = 42)
	Integer*2 kSelectVDGetMaskandValue 
	Parameter (kSelectVDGetMaskandValue = 43)
	Integer*2 kSelectVDSetMasterBlendLevel 
	Parameter (kSelectVDSetMasterBlendLevel = 44)
	Integer*2 kSelectVDSetPlayThruDestination 
	Parameter (kSelectVDSetPlayThruDestination = 45)
	Integer*2 kSelectVDSetPlayThruOnOff 
	Parameter (kSelectVDSetPlayThruOnOff = 46)
	Integer*2 kSelectVDSetFieldPreference 
	Parameter (kSelectVDSetFieldPreference = 47)
	Integer*2 kSelectVDGetFieldPreference 
	Parameter (kSelectVDGetFieldPreference = 48)
	Integer*2 kSelectVDPreflightDestination 
	Parameter (kSelectVDPreflightDestination = 50)
	Integer*2 kSelectVDPreflightGlobalRect 
	Parameter (kSelectVDPreflightGlobalRect = 51)
	Integer*2 kSelectVDSetPlayThruGlobalRect 
	Parameter (kSelectVDSetPlayThruGlobalRect = 52)
	Integer*2 kSelectVDSetInputGammaRecord 
	Parameter (kSelectVDSetInputGammaRecord = 53)
	Integer*2 kSelectVDGetInputGammaRecord 
	Parameter (kSelectVDGetInputGammaRecord = 54)
	Integer*2 kSelectVDSetBlackLevelValue 
	Parameter (kSelectVDSetBlackLevelValue = 55)
	Integer*2 kSelectVDGetBlackLevelValue 
	Parameter (kSelectVDGetBlackLevelValue = 56)
	Integer*2 kSelectVDSetWhiteLevelValue 
	Parameter (kSelectVDSetWhiteLevelValue = 57)
	Integer*2 kSelectVDGetWhiteLevelValue 
	Parameter (kSelectVDGetWhiteLevelValue = 58)
	Integer*2 kSelectVDGetVideoDefaults 
	Parameter (kSelectVDGetVideoDefaults = 59)
	Integer*2 kSelectVDGetNumberOfInputs 
	Parameter (kSelectVDGetNumberOfInputs = 60)
	Integer*2 kSelectVDGetInputFormat 
	Parameter (kSelectVDGetInputFormat = 61)
	Integer*2 kSelectVDSetInput 
	Parameter (kSelectVDSetInput = 62)
	Integer*2 kSelectVDGetInput 
	Parameter (kSelectVDGetInput = 63)
	Integer*2 kSelectVDSetInputStandard 
	Parameter (kSelectVDSetInputStandard = 64)
	Integer*2 kSelectVDSetupBuffers 
	Parameter (kSelectVDSetupBuffers = 65)
	Integer*2 kSelectVDGrabOneFrameAsync 
	Parameter (kSelectVDGrabOneFrameAsync = 66)
	Integer*2 kSelectVDDone 
	Parameter (kSelectVDDone = 67)
	
	Integer*2 kvdigSelectors 
	Parameter (kvdigSelectors = 67)
		
	TYPE
	! Sequence Grab Component 
c	SeqGrabComponent = ComponentInstance
c	SGChannel = ComponentInstance
	
	CONST
	Integer*2 SeqGrabComponentType 
	Parameter (SeqGrabComponentType = )'barg'
	Integer*2 SeqGrabChannelType 
	Parameter (SeqGrabChannelType = )'sgch'
	Integer*2 grabPictOffScreen 
	Parameter (grabPictOffScreen = 1)
	Integer*2 sgFlagControlledGrab 
	Parameter (sgFlagControlledGrab = 1)
	
	Integer*2 channelPlayNormal 
	Parameter (channelPlayNormal = 0)
	Integer*2 channelPlayFast 
	Parameter (channelPlayFast = 1)
	Integer*2 channelPlayHighQuality 
	Parameter (channelPlayHighQuality = 2)
	Integer*2 channelPlayAllData 
	Parameter (channelPlayAllData = 4)
	
	Integer*2 seqGrabToDisk 
	Parameter (seqGrabToDisk = 1)
	Integer*2 seqGrabToMemory 
	Parameter (seqGrabToMemory = 2)
	Integer*2 seqGrabUseTempMemory 
	Parameter (seqGrabUseTempMemory = 4)
	Integer*2 seqGrabAppendToFile 
	Parameter (seqGrabAppendToFile = 8)
	Integer*2 seqGrabDontAddMovieResource 
	Parameter (seqGrabDontAddMovieResource = 16)
	Integer*2 seqGrabRecord 
	Parameter (seqGrabRecord = 1)
	Integer*2 seqGrabPreview 
	Parameter (seqGrabPreview = 2)
	Integer*2 seqGrabPlayDuringRecord 
	Parameter (seqGrabPlayDuringRecord = 4)
	Integer*2 seqGrabHasBounds 
	Parameter (seqGrabHasBounds = 1)
	Integer*2 seqGrabHasVolume 
	Parameter (seqGrabHasVolume = 2)
	Integer*2 seqGrabHasDiscreteSamples 
	Parameter (seqGrabHasDiscreteSamples = 4)
	
	Integer*2 noDeviceForChannel 
	Parameter (noDeviceForChannel = -9400)
	Integer*2 grabTimeComplete 
	Parameter (grabTimeComplete = -9401)
	Integer*2 cantDoThatInCurrentMode 
	Parameter (cantDoThatInCurrentMode = -9402)
	Integer*2 notEnoughMemoryToGrab 
	Parameter (notEnoughMemoryToGrab = -9403)
	Integer*2 notEnoughDiskSpaceToGrab 
	Parameter (notEnoughDiskSpaceToGrab = -9404)
	Integer*2 couldntGetRequiredComponent 
	Parameter (couldntGetRequiredComponent = -9405)
	Integer*2 badSGChannel 
	Parameter (badSGChannel = -9406)
	Integer*2 seqGrabInfoNotAvailable 
	Parameter (seqGrabInfoNotAvailable = -9407)
	Integer*2 deviceCantMeetRequest 
	Parameter (deviceCantMeetRequest = -9408)
	
	Structure /SeqGrabFrameInfo /
	 Integer*4 frameOffset 
	 Integer*4 frameTime 
	 Integer*4 frameSize 
	 Record /SGChannel/ frameChannel 
	 Integer*4 frameRefCon 
	End Structure
		
	
	TYPE
	! Video Routines 
	
c	GrabProc = ComponentResult
c	GrabCompleteProc = ComponentResult
c	DisplayProc = ComponentResult
c	CompressProc = ComponentResult
c	CompressCompleteProc = ComponentResult
c	AddFrameProc = ComponentResult
c	TransferFrameProc = ComponentResult
	
	Structure /VideoBottles /
	 Integer*2 procCount 
	 Record /GrabProc/ grabProc 
	 Record /GrabCompleteProc/ grabCompleteProc 
	 Record /DisplayProc/ displayProc 
	 Record /CompressProc/ compressProc 
	 Record /AddFrameProc/ addFrameProc 
	 Record /TransferFrameProc/ transferFrameProc 
	End Structure
	
	Structure /SGCompressInfo /
	  Record /Ptr/ buffer 
	  Integer*4 bufferSize 
	  Byte similarity 
	  Byte reserved 
	End Structure
	
	
	CONST
		Integer*2 kSGInitializeSelect 
		Parameter (kSGInitializeSelect = $1)
		Integer*2 kSGSetDataOutputSelect 
		Parameter (kSGSetDataOutputSelect = $2)
		Integer*2 kSGGetDataOutputSelect 
		Parameter (kSGGetDataOutputSelect = $3)
		Integer*2 kSGSetGWorldSelect 
		Parameter (kSGSetGWorldSelect = $4)
		Integer*2 kSGGetGWorldSelect 
		Parameter (kSGGetGWorldSelect = $5)
		Integer*2 kSGNewChannelSelect 
		Parameter (kSGNewChannelSelect = $6)
		Integer*2 kSGDisposeChannelSelect 
		Parameter (kSGDisposeChannelSelect = $7)
		Integer*2 kSGStartPreviewSelect 
		Parameter (kSGStartPreviewSelect = $10)
		Integer*2 kSGStartRecordSelect 
		Parameter (kSGStartRecordSelect = $11)
		Integer*2 kSGIdleSelect 
		Parameter (kSGIdleSelect = $12)
		Integer*2 kSGStopSelect 
		Parameter (kSGStopSelect = $13)
		Integer*2 kSGPauseSelect 
		Parameter (kSGPauseSelect = $14)
		Integer*2 kSGPrepareSelect 
		Parameter (kSGPrepareSelect = $15)
		Integer*2 kSGReleaseSelect 
		Parameter (kSGReleaseSelect = $16)
		Integer*2 kSGGetMovieSelect 
		Parameter (kSGGetMovieSelect = $17)
		Integer*2 kSGSetMaximumRecordTimeSelect 
		Parameter (kSGSetMaximumRecordTimeSelect = $18)
		Integer*2 kSGGetMaximumRecordTimeSelect 
		Parameter (kSGGetMaximumRecordTimeSelect = $19)
		Integer*2 kSGGetStorageSpaceRemainingSelect 
		Parameter (kSGGetStorageSpaceRemainingSelect = $1)a
		Integer*2 kSGGetTimeRemainingSelect 
		Parameter (kSGGetTimeRemainingSelect = $1)b
		Integer*2 kSGGrabPictSelect 
		Parameter (kSGGrabPictSelect = $1)c
		Integer*2 kSGGetLastMovieResIDSelect 
		Parameter (kSGGetLastMovieResIDSelect = $1)d
		Integer*2 kSGSetFlagsSelect 
		Parameter (kSGSetFlagsSelect = $1)e
		Integer*2 kSGGetFlagsSelect 
		Parameter (kSGGetFlagsSelect = $1)f
	
		Integer*2 kSGCSetChannelUsageSelect 
		Parameter (kSGCSetChannelUsageSelect = $80)
		Integer*2 kSGCGetChannelUsageSelect 
		Parameter (kSGCGetChannelUsageSelect = $81)
		Integer*2 kSGCSetChannelBoundsSelect 
		Parameter (kSGCSetChannelBoundsSelect = $82)
		Integer*2 kSGCGetChannelBoundsSelect 
		Parameter (kSGCGetChannelBoundsSelect = $83)
		Integer*2 kSGCSetChannelVolumeSelect 
		Parameter (kSGCSetChannelVolumeSelect = $84)
		Integer*2 kSGCGetChannelVolumeSelect 
		Parameter (kSGCGetChannelVolumeSelect = $85)
		Integer*2 kSGCGetChannelInfoSelect 
		Parameter (kSGCGetChannelInfoSelect = $86)
		Integer*2 kSGCSetChannelPlayFlagsSelect 
		Parameter (kSGCSetChannelPlayFlagsSelect = $87)
		Integer*2 kSGCGetChannelPlayFlagsSelect 
		Parameter (kSGCGetChannelPlayFlagsSelect = $88)
		Integer*2 kSGCSetChannelMaxFramesSelect 
		Parameter (kSGCSetChannelMaxFramesSelect = $89)
		Integer*2 kSGCGetChannelMaxFramesSelect 
		Parameter (kSGCGetChannelMaxFramesSelect = $8)a
		Integer*2 kSGCSetChannelRefConSelect 
		Parameter (kSGCSetChannelRefConSelect = $8)b
	
		Integer*2 kSGCGetSrcVideoBoundsSelect 
		Parameter (kSGCGetSrcVideoBoundsSelect = $100)
		Integer*2 kSGCSetVideoRectSelect 
		Parameter (kSGCSetVideoRectSelect = $101)
		Integer*2 kSGCGetVideoRectSelect 
		Parameter (kSGCGetVideoRectSelect = $102)
		Integer*2 kSGCGetVideoCompressorTypeSelect 
		Parameter (kSGCGetVideoCompressorTypeSelect = $103)
		Integer*2 kSGCSetVideoCompressorTypeSelect 
		Parameter (kSGCSetVideoCompressorTypeSelect = $104)
		Integer*2 kSGCSetVideoCompressorSelect 
		Parameter (kSGCSetVideoCompressorSelect = $105)
		Integer*2 kSGCGetVideoCompressorSelect 
		Parameter (kSGCGetVideoCompressorSelect = $106)
		Integer*2 kSGCGetVideoDigitizerComponentSelect 
		Parameter (kSGCGetVideoDigitizerComponentSelect = $107)
		Integer*2 kSGCSetVideoDigitizerComponentSelect 
		Parameter (kSGCSetVideoDigitizerComponentSelect = $108)
		Integer*2 kSGCVideoDigitizerChangedSelect 
		Parameter (kSGCVideoDigitizerChangedSelect = $109)
		Integer*2 kSGCSetVideoBottlenecksSelect 
		Parameter (kSGCSetVideoBottlenecksSelect = $10)a
		Integer*2 kSGCGetVideoBottlenecksSelect 
		Parameter (kSGCGetVideoBottlenecksSelect = $10)b
		Integer*2 kSGCGrabFrameSelect 
		Parameter (kSGCGrabFrameSelect = $10)c
		Integer*2 kSGCGrabFrameCompleteSelect 
		Parameter (kSGCGrabFrameCompleteSelect = $10)d
		Integer*2 kSGCDisplayFrameSelect 
		Parameter (kSGCDisplayFrameSelect = $10)e
		Integer*2 kSGCCompressFrameSelect 
		Parameter (kSGCCompressFrameSelect = $10)f
		Integer*2 kSGCCompressFrameCompleteSelect 
		Parameter (kSGCCompressFrameCompleteSelect = $110)
		Integer*2 kSGCAddFrameSelect 
		Parameter (kSGCAddFrameSelect = $111)
		Integer*2 kSGCTransferFrameForCompressSelect 
		Parameter (kSGCTransferFrameForCompressSelect = $112)
		Integer*2 kSGCSetCompressBufferSelect 
		Parameter (kSGCSetCompressBufferSelect = $113)
		Integer*2 kSGCGetCompressBufferSelect 
		Parameter (kSGCGetCompressBufferSelect = $114)
		Integer*2 kSGCGetBufferInfoSelect 
		Parameter (kSGCGetBufferInfoSelect = $115)
	
		Integer*2 kSGCSetSoundInputDriverSelect 
		Parameter (kSGCSetSoundInputDriverSelect = $100)
		Integer*2 kSGCGetSoundInputDriverSelect 
		Parameter (kSGCGetSoundInputDriverSelect = $101)
		Integer*2 kSGCSoundInputDriverChangedSelect 
		Parameter (kSGCSoundInputDriverChangedSelect = $102)
		Integer*2 kSGCSetSoundRecordChunkSizeSelect 
		Parameter (kSGCSetSoundRecordChunkSizeSelect = $103)
		Integer*2 kSGCGetSoundRecordChunkSizeSelect 
		Parameter (kSGCGetSoundRecordChunkSizeSelect = $104)
		Integer*2 kSGCSetSoundInputRateSelect 
		Parameter (kSGCSetSoundInputRateSelect = $105)
		Integer*2 kSGCGetSoundInputRateSelect 
		Parameter (kSGCGetSoundInputRateSelect = $106)
	
		Integer*2 kSGCInitChannelSelect 
		Parameter (kSGCInitChannelSelect = $180)
		Integer*2 kSGCWriteSamplesSelect 
		Parameter (kSGCWriteSamplesSelect = $181)
		Integer*2 kSGCGetDataRateSelect 
		Parameter (kSGCGetDataRateSelect = $182)
	
		Integer*2 kSGWriteMovieDataSelect 
		Parameter (kSGWriteMovieDataSelect = $100)
		Integer*2 kSGAddFrameReferenceSelect 
		Parameter (kSGAddFrameReferenceSelect = $101)
		Integer*2 kSGGetNextFrameReferenceSelect 
		Parameter (kSGGetNextFrameReferenceSelect = $102)
		Integer*2 kSGGetTimeBaseSelect 
		Parameter (kSGGetTimeBaseSelect = $103)
	
!!ENDC ! GOTQuickTimeComponents 
	
	